package com.ssyc.gsk_teacher_appraisal.util;

/**
 * 用于计算做题时间的帮助类
 * Created by Administrator on 2018/6/5 0005.
 */

public class TimeCount {


    //初始化方法
    public static void init() {
//        newInstance();
        TimeCount timeCount = newInstance();
        timeCount.setLastTime(System.currentTimeMillis());
        timeCount.setTotalTime(0);
    }

    //属性
    private long lastTime;//上次记录的时间,初始化为初次进入答题页面的时间
    private long totalTime;//总的做题时间


    /*实现单例模式的第一种方式,双重同步锁验证方式,线程安全效率低*/
//    //单例对象
//    public static volatile TimeCount timeCount;
//
//    public static TimeCount newInstance() {
//        if (null == timeCount) {
//            synchronized (TimeCount.class) {
//                if (null == timeCount) {
//                    timeCount = new TimeCount();
//                }
//            }
//
//        }
//        return timeCount;
//    }

    /*实现单例模式的第二种方式,使用classLoader加载机制实现,线程安全效率高*/
    private static class LazyHolder {
        private static final TimeCount INSTANCE = new TimeCount();
    }

    public static final TimeCount newInstance() {
        return LazyHolder.INSTANCE;
    }


    private TimeCount() {
    }

    public long getLastTime() {
        return lastTime;
    }

    public void setLastTime(long lastTime) {
        this.lastTime = lastTime;
    }

    public long getTotalTime() {
        return totalTime;
    }

    public void setTotalTime(long totalTime) {
        this.totalTime = totalTime;
    }

    /**
     * 释放统计时间的方法
     */
    public static void release() {
        TimeCount timeCount = newInstance();
        timeCount.setLastTime(0);
        timeCount.setTotalTime(0);
        timeCount = null;
    }

}
